Most users backup data in case of hardware failure, data corruption, or other situations that may involve the loss of data. Backups to a computer can be made to a backup device. A backup device may be, for example, a tape drive, an optical disk drive, a hard drive, or other suitable devices. A backup device is attached to, integrated as part of, or otherwise associated with the computer on which the data is located.
This type of local backup provides a capability to restore data in the event that a hardware failure occurs in the computer. This type of backup, however, does not provide a suitable mechanism for restoring data in the event of a disaster. A disaster may be an event in which an extensive failure occurs. This failure may involve the loss or destruction of the computer and the backup device. Further, a disaster also may involve damage or loss of other equipment in the same location as the computer. For example, a disaster may be caused by environmental hazards, such as fire, flood, earthquake, power outages, malicious acts, operator errors, or other similar actions.
One solution is to use a remote backup device. For example, data on a computer may be backed up to a remote site. A backup process may copy data from a computer and send it to a remote storage device. Thus, if a disaster occurs, the data may be restored. Some data, however, may not be restored. Data that has been added to the computer since the last backup was performed is lost. Depending on how often a backup is made, the amount of data lost may not be unreasonable or crucial. Backups may be made daily, hourly, or even continuously, depending on the particular type of backup device used and the schedule that is set.
For many organizations and users, it is desirable and sometimes essential to provide continuous access to data and processing of data, even in the event of these types of failures. A backup copy of data, such as a secondary database, is often maintained at a remote geographic location. The distance between the location of a primary database and a secondary database may reduce the likelihood that the secondary database is also affected by a disaster affecting the primary database. In the event that a failure occurs in the primary database, location, processing of data, and access to the data may be directed to the secondary database.
Currently, many processes and techniques are available for synchronizing databases. One manner in which databases may be synchronized involves applying updates to both databases in a synchronous fashion. In other words, any writes or changes to the primary database are also made to the backup database before actually making the writes or changes to the primary database. Keeping the databases synchronized in this fashion has the benefit of ensuring a minimal loss of data in the event of a disaster.
Another manner in which databases may be synchronized involves generating a record of changes made to the primary database. These changes may then be sent asynchronously to the secondary database. These changes are oftentimes saved in a log generated at the primary database. These logs are then sent to the backup database to allow the backup database to make the same changes that occurred at the primary database.